package com.njbw.redis.init;

/**
 * 该抽象类只是定义了缓存自动预热的规范，
 * 但是并没有告诉你项目启动时调用它
 */
public abstract class AbstractCache {

    // 初始化缓存
    public abstract void initCache();

    // 获取缓存：由使用方实现，我们此处只是定义一个架子
    public <T> T getCache(String key) {
        return null;
    }

    // 清楚缓存：缓存一致性的时候都有些双删的策略，此处把缓存删掉
    public abstract void clearCache();

    // 重载缓存
    public void reloadCache() {
        clearCache();
        initCache();
    }
}
